package bucket

import (
	"gitee.com/kordar/bucket/inject"
	"gitee.com/kordar/bucket/model"
	logger "github.com/kordar/gologger"
)

type Module struct {
	tableName string
}

func NewModule(tableName string) *Module {
	return &Module{tableName: tableName}
}

func (m Module) Depends() []string {
	return []string{"mysql"}
}

func (m Module) Name() string {
	return "bucket"
}

func (m Module) Close() {
}

func (m Module) Load(value interface{}) {

	//mm := cast.ToStringMap(value)
	// 非租户模式，设置默认数据库为当前db
	//db := cast.ToString(mm["db"])
	//
	//if !goframeworkgormmysql.HasMysqlInstance(db) {
	//	logger.Fatalf("[goadmin] 系统初始化失败，未查询到有效数据库实例-%s", db)
	//}

	if m.tableName != "" {
		model.TableNameBucket = m.tableName
	}

	// 初始化数据提供者
	providers()
	invokes()

	logger.Infof("[%s] Load Complete", m.Name())
}

func providers() {

	inject.ControllerProvider()
	inject.ServiceProvider()
	//inject.ValidatorProvider()
	// 注册路由
	routerProvider()
}

func invokes() {
}
